#include "hashtable.h"
#include "dict.h"
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <vector>
#include <algorithm>

int read_from_file(FILE * input_file, Dict *d);

int main(int argc, char *argv[]) {
    if (argc != 2) {
        exit(1);
    }
    FILE *input = fopen(argv[1], "r");
    if (input == 0) {
        perror("Fopen Failed ");
        exit(-1);
    }
    Dict d = Dict();
    read_from_file(input, &d);
    fclose(input);
    d.print();
    return 0;
}

bool words_check(string s)
{
    for(int i=0;i<s.length();i++)
    {
        if(!isalpha(s[i]))return false;
    }
    return true;
}

int read_from_file(FILE * input_file, Dict *d) {
    //TODO
    //从函数指针中读取单词，并且将单词插入字典中。
    if(input_file==NULL)return 0;
    char s[100]={0};
    vector<string>v;
    for(int i=0;!feof(input_file);++i) /*file_p是文件标识符*/
    {
        if(fscanf(input_file,"%s",s)==EOF)
        {
            break;
        }
        string res=s;
        if(res[res.length()-1]=='—')continue;
        string t="";
        for(int i=0;i<res.length();i++)
        {
            if(isalpha(res[i]))
            t.append(1,res[i]);
            else
            {
                if(t!="")
                {
                    transform(t.begin(),t.end(),t.begin(),::tolower);
                    v.push_back(t);
                }
                t="";
            }
        }
        if(t!="")
        {
            transform(t.begin(),t.end(),t.begin(),::tolower);
            v.push_back(t);
        }
    }

    for(int i=0;i<v.size();i++)
    {
        d->insert(v[i].c_str());
    }
    return 0;
}